#include <linux/init.h>
#include <linux/module.h>

#define DEBUG(fmt, ...)         \
    do{                         \
        if(if_debug)            \
            printk(KERN_INFO "DEBUG > " fmt, ##__VA_ARGS__);   \
    }while(0)

bool if_debug = false;
/*定义一个bool类型的变量，作为一个模块入参，在装载模块时可赋值*/
module_param(if_debug, bool, S_IRUSR);

static int __init test_init(void)
{
    DEBUG("%s\r\n",__FUNCTION__);

    return 0;
}

static void __exit test_exit(void)
{
    DEBUG("%s\r\n",__FUNCTION__);
}

/*此宏声明内核模块的初始化入口点*/
module_init(test_init);
/*此宏声明内核模块的退出入口点*/
module_exit(test_exit);

/*声明开源协议*/
MODULE_LICENSE("GPL");
/*声明作者*/
MODULE_AUTHOR("wei");
/*声明模块的描述*/
MODULE_DESCRIPTION("this is a test driver");
